Automatiseer PDF-Factuurgeneratie met n8n en DocuGenerate

Artikelafbeelding
Auteur Door DocuGenerate

24 Oktober 2025

Introductie

Documentautomatisering vereist niet altijd cloudgebaseerde oplossingen; soms zijn de meest effectieve workflows degene die lokaal op uw computer draaien. In deze tutorial verkennen we hoe u een geautomatiseerd systeem voor factuurgeneratie bouwt met n8n, een krachtige tool voor workflowautomatisering, gecombineerd met DocuGenerate om professionele PDF-facturen te maken.

De workflow die we bouwen is eenvoudig maar krachtig. Deze controleert een aangewezen map op uw lokale computer op nieuwe Excel-bestanden met factuurdata. Wanneer een bestand verschijnt, leest de workflow automatisch de data, genereert een aparte factuur voor elke rij, en slaat de voltooide PDF-documenten op in een uitvoermap. Deze aanpak is bijzonder nuttig voor bedrijven die facturen lokaal moeten verwerken en volledige controle over hun data willen behouden.

Gedurende deze gids doorlopen we elke node in de n8n-workflow, en leggen we het doel en de configuratie ervan uit. Aan het einde van deze tutorial heeft u een volledig functioneel lokaal systeem voor factuurgeneratie dat u kunt aanpassen aan uw specifieke behoeften.

Het Sjabloon Instellen

Voordat we de n8n-workflow bouwen, moeten we ons factuursjabloon voorbereiden. De Sjabloonbibliotheek van DocuGenerate bevat een kant-en-klaar sjabloon Repair Invoice dat perfect is voor deze tutorial. U kunt meer leren over het gebruik van sjablonen uit de bibliotheek in onze vorige gids.

Het sjabloon bevat merge-tags zoals Invoice No, Customer Name, Product Name, en andere veelvoorkomende factuurvelden. Deze merge-tags worden automatisch vervangen door daadwerkelijke data uit het Excel-bestand tijdens het documentgeneratieproces. Het sjabloon bevat ook een voorbeeld-Excel-bestand met tien rijen factuurdata, dat we gebruiken om de workflow te demonstreren.

Het Repair Invoice-sjabloon in DocuGenerate

Zodra u het sjabloon uit de bibliotheek heeft gedownload, uploadt u het bestand Repair Invoice.docx naar uw DocuGenerate-account. Nu het sjabloon klaar is, kunnen we onze aandacht richten op het bouwen van de n8n-workflow die het volledige factuurgeneratieproces zal automatiseren.

Overzicht van de Volledige Workflow

De workflow die we bouwen bestaat uit verschillende onderling verbonden nodes die samenwerken om bestanden te controleren, data te verwerken, documenten te genereren, en de resultaten op de schijf op te slaan. Dit is hoe de volledige workflow eruitziet in n8n:

De volledige n8n-workflow

De workflow begint met een trigger die een lokale map controleert op nieuwe bestanden. Wanneer een Excel-bestand wordt toegevoegd, valideert de workflow de bestandsextensie, leest de bestandsinhoud, extraheert de data naar gestructureerde rijen, en doorloopt vervolgens elke rij om een individuele factuur te genereren. Elke gegenereerde factuur wordt gedownload en opgeslagen in een aangewezen uitvoermap op uw lokale computer. Dit volledige proces verloopt automatisch, zonder handmatige tussenkomst nadat het is geconfigureerd.

Als u deze workflow rechtstreeks in uw n8n-instantie wilt importeren, kunt u het workflow-JSON-bestand downloaden en importeren. Dit kan u tijd besparen en ervoor zorgen dat alle nodes correct zijn geconfigureerd. Laten we nu elke node in detail bekijken om te begrijpen hoe de workflow werkt.

De Local File Trigger Configureren

De workflow begint met de node Local File Trigger, die een specifieke map op uw computer controleert op nieuwe bestanden. Deze trigger is het beginpunt van het volledige automatiseringsproces. Voor deze tutorial controleren we de map /Users/docugenerate/n8n/Data, maar u kunt dit configureren naar elke map op uw systeem waar u van plan bent Excel-bestanden toe te voegen.

Configuratie van de Local File Trigger

De trigger is geconfigureerd om het event File Added te detecteren, wat betekent dat deze wordt geactiveerd telkens wanneer een nieuw bestand verschijnt in de gecontroleerde map. Dit is ideaal voor batchverwerkingsscenario’s waarbij u mogelijk meerdere Excel-bestanden gedurende de dag in een map plaatst en wilt dat deze automatisch worden verwerkt. De trigger legt het bestandspad vast en geeft dit door aan de volgende node in de workflow.

Voor dit voorbeeld gebruiken we het bestand Repair Invoice.xlsx uit het voorbeeldsjabloon, dat tien rijen factuurdata bevat. Elke rij vertegenwoordigt een aparte factuur met details zoals factuurnummer, klantinformatie, servicebeschrijvingen, en bedragen.

De Bestandsextensie Valideren

Nadat de trigger een nieuw bestand detecteert, moeten we controleren of het daadwerkelijk een Excel-bestand is, voordat we proberen het te verwerken. De node If dient dit doel door te controleren of het bestandspad eindigt op de extensie .xlsx. Deze validatiestap voorkomt fouten die kunnen optreden als iemand per ongeluk een ander bestandstype in de gecontroleerde map plaatst.

Controleren of het bestand een Excel-bestand is

Als de voorwaarde waar is, gaat de workflow verder naar de volgende stap. Als deze onwaar is, stopt de workflow, wat onnodige verwerking van incompatibele bestanden voorkomt. Deze eenvoudige controle voegt robuustheid toe aan de workflow en zorgt ervoor dat alleen geldige Excel-bestanden worden verwerkt.

Het Bestand van de Schijf Lezen

Zodra we hebben bevestigd dat het bestand een Excel-spreadsheet is, haalt de node Read File from Disk de daadwerkelijke bestandsinhoud op van uw lokale computer. Deze node gebruikt het bestandspad dat door de trigger is opgegeven om de binaire data van het Excel-bestand te vinden en te lezen.

Het bestand van de schijf lezen

De configuratie is eenvoudig. De parameter File(s) Selector is ingesteld op {{ $json.path }}, wat verwijst naar het pad dat is vastgelegd door de trigger. In de sectie met opties geven we data op als de naam van het uitvoer-binaire veld waarin de bestandsinhoud wordt opgeslagen. Deze veldnaam wordt gebruikt in volgende nodes om toegang te krijgen tot de bestandsdata.

Het is belangrijk op te merken dat deze node werkt met bestanden op dezelfde computer waarop n8n draait. Als u bestanden tussen verschillende computers moet verwerken, heeft u alternatieve nodes nodig, zoals FTP, HTTP Request, of AWS S3-nodes. Voor lokale verwerkingsscenario’s zoals het onze biedt deze node een eenvoudige en efficiënte oplossing.

Data Extraheren uit het Excel-Bestand

Nu de bestandsinhoud beschikbaar is als binaire data, moeten we deze omzetten naar een gestructureerd formaat dat door de workflow kan worden verwerkt. De node Extract from File verzorgt deze transformatie door het Excel-bestand te parsen en elke rij om te zetten naar een apart gegevenselement.

Data extraheren uit het Excel-bestand

De node is geconfigureerd met de bewerking Extract from XLSX, en het Input Binary Field is ingesteld op data, wat overeenkomt met de veldnaam die we hebben opgegeven in de vorige node. Deze stap is essentieel, omdat deze de ruwe binaire bestandsdata omzet naar gestructureerde JSON-objecten die de factuurinformatie van elke rij bevatten. Deze gestructureerde gegevenselementen kunnen nu afzonderlijk worden verwerkt om facturen te genereren.

Elk Factuurrecord Doorlopen

Nu we de gestructureerde gegevenselementen uit het Excel-bestand hebben, moeten we elk item afzonderlijk verwerken om een aparte factuur te genereren. De node Loop Over Items maakt dit mogelijk door de items in batches te doorlopen. Voor deze workflow gebruiken we een batchgrootte van één, wat betekent dat elke factuur wordt gegenereerd en opgeslagen voordat wordt overgegaan naar de volgende.

Items doorlopen met batchgrootte van 1

Deze batchgewijze aanpak is bijzonder nuttig voor documentgeneratie, omdat het ervoor zorgt dat elke factuur volledig wordt verwerkt voordat met de volgende wordt begonnen. Het helpt ook bij het beheren van systeembronnen bij het werken met grotere datasets. De lus gaat door totdat alle items zijn verwerkt, waarbij de workflow dezelfde reeks nodes uitvoert voor elk factuurrecord.

Het Factuurdocument Genereren

De node Generate Document neemt de data van elke rij en voegt deze samen met het sjabloon om een PDF-factuur te maken. Om deze node te gebruiken, moet u de DocuGenerate-node installeren in uw n8n-instantie.

Het factuurdocument genereren

De configuratie van de node vereist verschillende parameters:

  • Template Name or ID is ingesteld op Repair Invoice, wat overeenkomt met het sjabloon dat we eerder hebben geüpload.
  • Name gebruikt een expressie Invoice no {{ $json['Invoice No'] }} om elk document dynamisch te benoemen op basis van het factuurnummer uit de data.
  • Format is ingesteld op PDF (.pdf) om PDF-documenten te genereren.
  • Data is geconfigureerd met {{ $json }}, wat het volledige huidige gegevenselement doorgeeft aan de API voor documentgeneratie. Dit betekent dat alle velden uit de Excel-rij beschikbaar zijn voor merge-tags in het sjabloon.

De API verwerkt dit verzoek en retourneert een antwoord met een veld document_uri dat verwijst naar het gegenereerde document.

Het Gegenereerde Document Downloaden

Nadat DocuGenerate de factuur heeft gemaakt, gebruikt Get File from URL de ingebouwde node HTTP Request om de gegenereerde PDF op te halen van de URL die is opgegeven in het antwoord van de vorige stap.

Het bestand van URL ophalen

De parameter URL is ingesteld op {{ $json.document_uri }}, wat verwijst naar de document-URL die is geretourneerd door de node Generate Document. In de sectie met opties is de Response Format geconfigureerd als File, om ervoor te zorgen dat de data wordt behandeld als binaire content in plaats van tekst. De optie Put Output in Field is ingesteld op data, waarmee de PDF-inhoud wordt opgeslagen in een veld dat toegankelijk is voor de volgende node.

Voor dit voorbeeld heeft het gegenereerde document de bestandsnaam Invoice no 58-223-0655.pdf, die dynamisch is gemaakt op basis van het factuurnummer in de eerste rij van onze voorbeelddata. Elke volgende factuur krijgt zijn eigen unieke bestandsnaam volgens hetzelfde patroon.

De Factuur Opslaan op de Schijf

De laatste stap in de workflow slaat de gegenereerde factuur-PDF op in een aangewezen map op uw lokale computer. De node Write File to Disk verzorgt deze bewerking, en slaat elke voltooide factuur op waar u er eenvoudig toegang toe heeft.

Het bestand op de schijf opslaan

De parameter File Path and Name is geconfigureerd met /Users/docugenerate/n8n/Invoices/{{ $data.filename }}, wat een basismappad combineert met de dynamische bestandsnaam van het gegenereerde document. Het Input Binary Field is ingesteld op data, dat de PDF-inhoud bevat die is opgehaald in de vorige stap.

Deze configuratie slaat alle facturen op in dezelfde map, maar u zou dit verder kunnen aanpassen. U zou bijvoorbeeld facturen kunnen organiseren op datum, of ze kunnen groeperen op klantnaam. De flexibiliteit van n8n-expressies stelt u in staat elke mapstructuur te creëren die past bij uw bedrijfsbehoeften. Houd er rekening mee dat deze node is ontworpen voor het werken met bestanden op dezelfde computer waarop n8n draait.

De Workflow Uitvoeren

Nu alle nodes zijn geconfigureerd, is de workflow klaar om facturen automatisch te verwerken. Om dit te testen, voegt u simpelweg het bestand Repair Invoice.xlsx toe aan de map Data die door de trigger wordt gecontroleerd. De workflow detecteert het nieuwe bestand onmiddellijk en begint met verwerken.

De workflow uitvoeren

De bovenstaande animatie toont het segment Loop Over Items in actie, waarbij alle tien gegevenselementen uit het Excel-bestand worden doorlopen. Voor elk item genereert de workflow een factuur met behulp van het sjabloon en de data, downloadt de PDF, en slaat deze op in de doelmap. U kunt de voortgang in realtime volgen via de visuele interface van n8n, die uitstekend inzicht biedt in elke stap van het proces.

Gegenereerde facturen in de uitvoermap

Zodra de workflow is voltooid, zijn alle tien facturen gegenereerd en opgeslagen in de map Invoices. Deze geautomatiseerde aanpak elimineert de noodzaak voor handmatige documentcreatie, wat aanzienlijk tijd bespaart en de kans op fouten vermindert die kunnen optreden bij handmatige gegevensinvoer.

Conclusie

Het bouwen van lokale automatiseringsworkflows met n8n en DocuGenerate biedt een krachtige oplossing voor bedrijven die documenten efficiënt moeten verwerken, terwijl ze volledige controle over hun data behouden. De workflow die we hebben gebouwd, toont hoe eenvoudig het is om mappen te controleren, bestanden te valideren, data te extraheren, en professionele documenten te genereren zonder afhankelijk te zijn van clouddiensten of complexe integraties.

Deze aanpak is bijzonder waardevol voor scenario’s waarin gegevensprivacy van het grootste belang is, internetconnectiviteit beperkt is, of u er simpelweg de voorkeur aan geeft uw documentverwerkingspijplijn lokaal te houden. De flexibiliteit van n8n stelt u in staat deze workflow op talloze manieren uit te breiden. U zou bijvoorbeeld e-mailmeldingen kunnen toevoegen wanneer facturen worden gegenereerd, back-upkopieën kunnen maken, of kunnen integreren met uw bestaande bedrijfssystemen met andere oplossingen.

De workflow die we hebben gemaakt, verwerkt reparatiefacturen, maar hetzelfde patroon kan worden toegepast op elk documenttype dat wordt ondersteund door DocuGenerate. Of u nu contracten, brieven, certificaten, of rapporten moet genereren, de kernworkflow blijft hetzelfde. U hoeft alleen het sjabloon aan te passen en ervoor te zorgen dat uw Excel-data overeenkomt met de merge-tags in uw gekozen sjabloon.

Bronnen

Deel Dit Artikel